/**
 * Author:yuiop
 * Date:2022/3/23 10:27
 */
package com.devops.shiro.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.devops.admin.model.BaseUser;
import com.devops.admin.model.TableResult;
import com.devops.admin.po.DOSBaseUserPo;
import com.devops.admin.po.DOSUserPo;
import com.devops.admin.vo.DOSPageVo;
import com.devops.shiro.vm.*;

import java.util.List;


public interface DOSBaseUserService extends IService<BaseUser> {
    BaseUser getBaseUser();
    List<BaseUser> getUsersByName(String name);
    TableResult<DOSBaseUserPo> getPageUsers(DOSUserVM dosUserVM,DOSPageVo inputPage);
    String addUser(BaseUserCreateVM userCreateVM);
    Boolean deleteUser(String userId);
    Boolean updateUser(BaseUserUpdateVM userUpdateVM);

    DOSBaseUserPo getBaseUserByLoginName(String loginName);
    /**
     * @Author heyabo
     * @Description 修改用户密码
     * @Date 15:07 2022/4/19
     * @Param [userUpdateVM]
     * @return java.lang.Boolean
     **/
    Boolean updatePassword(DOSUserUpdatePasswordVM userUpdateVM);

    /**
     * @Author heyabo
     * @Description 管理员修改用户密码
     * @Date 08:51 2022/4/21
     * @Param [changePassVM]
     * @return java.lang.Boolean
     **/
    Boolean changePassword(DOSUserChangePasswordVM changePassVM);

    List<DOSUserPo> getAllUser(Integer projectId);

    /**
     * @Author heyabo
     * @Description 获取技术经理
     * @Date 17:02 2022/9/5
     * @Param []
     * @return java.util.List<com.devops.admin.model.BaseUser>
     **/
    List<BaseUser> getTechnologyManager();

    List<DOSBaseUserPo> getUserByApiToken(String apiToken);
}
